package cn.byapps.hw.service;

import cn.byapps.hw.entity.Teacher;
import cn.byapps.hw.vo.TeacherVO;

import java.util.List;

public interface TeacherService {
    /**
     * 添加老师
     *
     * @param teacher 老师实体
     */
    void add(Teacher teacher);

    /**
     * 更新老师
     *
     * @param teacher 老师实体
     */
    void update(Teacher teacher);

    /**
     * 删除老师实体
     *
     * @param teacherId
     */
    void deleteById(String teacherId);

    /**
     * 分页查询所有老师
     *
     * @param pos  下标
     * @param rows 查询数量
     * @return
     */
    List<TeacherVO> findVO(Integer pos, Integer rows);

    /**
     * 根据条件分页查询老师
     *
     * @param pos    下标
     * @param rows   查询数量
     * @param search 条件
     * @return
     */
    List<TeacherVO> findVO(Integer pos, Integer rows, String search);

    /**
     * 根据老师ID查询
     *
     * @param pos       下标
     * @param rows      查询数量
     * @param teacherId 老师ID
     * @return
     */
    List<TeacherVO> findVOByTeacher(Integer pos, Integer rows, String teacherId);

    /**
     * 查询所有老师
     *
     * @return
     */
    List<TeacherVO> findVO();

    /**
     * 根据老师ID，课程ID以及班级ID，删除该老师执教该班级
     *
     * @param teacherId 老师ID
     * @param courseId  课程ID
     * @param clazzId   班级ID
     */
    void deleteCourse(String teacherId, Integer courseId, Integer clazzId);

    /**
     * 统计老师数量
     *
     * @return
     */
    int count();

    /**
     * 根据用户名和密码获取老师
     * @param teacher
     * @return
     */
    Teacher getByNameAndPassword(Teacher teacher);
}
